Fix up the border/background-color removal
authorMatthias Clasen <mclasen@redhat.com>
Mon, 1 Apr 2019 00:43:19 +0000 (20:43 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 1 Apr 2019 00:43:19 +0000 (20:43 -0400)
I overlooked one level of indirection here. Oops.

gtk/gtkflowbox.c
gtk/gtkpopover.c
gtk/gtkstylecontext.c
gtk/gtktextdisplay.c
gtk/gtktextutil.c
gtk/gtktextview.c

index 015a48e8ab6a3faa0b584b9d9259ae5b6a689fcb..1cb16836065b561ca47ccc013b061aa86b44e59d 100644 (file)
@@ -2362,7 +2362,7 @@ gtk_flow_box_snapshot (GtkWidget   *widget,
         {
           cairo_path_t *path;
           GtkBorder border;
-          GdkRGBA border_color;
+          GdkRGBA *border_color;
 
           if (vertical)
             path_from_vertical_line_rects (cr, (GdkRectangle *)lines->data, lines->len);
@@ -2386,8 +2386,9 @@ gtk_flow_box_snapshot (GtkWidget   *widget,
           gtk_style_context_get_border (context, &border);
 
           cairo_set_line_width (cr, border.left);
-          gdk_cairo_set_source_rgba (cr, &border_color);
+          gdk_cairo_set_source_rgba (cr, border_color);
           cairo_stroke (cr);
+          gdk_rgba_free (border_color);
         }
       g_array_free (lines, TRUE);
 
index dba89e511c3eb2405268d3a0d31429c8a3e2878b..d09c209733b165b3eea439a129cc9bab73d572fa 100644 (file)
@@ -1309,14 +1309,15 @@ gtk_popover_snapshot (GtkWidget   *widget,
   /* Render the border of the arrow tip */
   if (border.bottom > 0)
     {
-      GdkRGBA border_color;
+      GdkRGBA *border_color;
 
       gtk_style_context_get (context, "border-color", &border_color, NULL);
       gtk_popover_apply_tail_path (popover, cr);
-      gdk_cairo_set_source_rgba (cr, &border_color);
+      gdk_cairo_set_source_rgba (cr, border_color);
 
       cairo_set_line_width (cr, border.bottom + 1);
       cairo_stroke (cr);
+      gdk_rgba_free (border_color);
     }
 
   cairo_restore (cr);
index 4e0c953e2c324777ee23fb6b02a5ece81d81e59d..27c73dbd806b8b65307846e9fb736bef772ec992 100644 (file)
@@ -1928,16 +1928,18 @@ AtkAttributeSet *
 _gtk_style_context_get_attributes (AtkAttributeSet *attributes,
                                    GtkStyleContext *context)
 {
+  GdkRGBA *bg; 
   GdkRGBA color;
   gchar *value;
 
-  gtk_style_context_get (context, "background-color", &color, NULL);
+  gtk_style_context_get (context, "background-color", &bg, NULL);
   value = g_strdup_printf ("%u,%u,%u",
-                           (guint) ceil (color.red * 65536 - color.red),
-                           (guint) ceil (color.green * 65536 - color.green),
-                           (guint) ceil (color.blue * 65536 - color.blue));
+                           (guint) ceil (bg->red * 65536 - bg->red),
+                           (guint) ceil (bg->green * 65536 - bg->green),
+                           (guint) ceil (bg->blue * 65536 - bg->blue));
   attributes = add_attribute (attributes, ATK_TEXT_ATTR_BG_COLOR, value);
   g_free (value);
+  gdk_rgba_free (bg);
 
   gtk_style_context_get_color (context, &color);
   value = g_strdup_printf ("%u,%u,%u",
index 3f38112c8897a15eae6a73ba496fabb38873a49c..de02bd3b474320a143611cef42e8af9b369a1698 100644 (file)
@@ -569,7 +569,7 @@ render_para (GtkTextRenderer    *text_renderer,
   int byte_offset = 0;
   PangoLayoutIter *iter;
   int screen_width;
-  GdkRGBA selection;
+  GdkRGBA *selection;
   gboolean first = TRUE;
   GtkCssNode *selection_node;
 
@@ -627,7 +627,7 @@ render_para (GtkTextRenderer    *text_renderer,
           cairo_t *cr = text_renderer->cr;
 
           cairo_save (cr);
-          gdk_cairo_set_source_rgba (cr, &selection);
+          gdk_cairo_set_source_rgba (cr, selection);
           cairo_rectangle (cr, 
                            line_display->left_margin, selection_y,
                            screen_width, selection_height);
@@ -683,7 +683,7 @@ render_para (GtkTextRenderer    *text_renderer,
               cairo_clip (cr);
               cairo_region_destroy (clip_region);
 
-              gdk_cairo_set_source_rgba (cr, &selection);
+              gdk_cairo_set_source_rgba (cr, selection);
               cairo_rectangle (cr,
                                PANGO_PIXELS (line_rect.x),
                                selection_y,
@@ -706,7 +706,7 @@ render_para (GtkTextRenderer    *text_renderer,
                 {
                   cairo_save (cr);
 
-                  gdk_cairo_set_source_rgba (cr, &selection);
+                  gdk_cairo_set_source_rgba (cr, selection);
                   cairo_rectangle (cr,
                                    line_display->left_margin,
                                    selection_y,
@@ -730,7 +730,7 @@ render_para (GtkTextRenderer    *text_renderer,
 
                   cairo_save (cr);
 
-                  gdk_cairo_set_source_rgba (cr, &selection);
+                  gdk_cairo_set_source_rgba (cr, selection);
                   cairo_rectangle (cr,
                                    PANGO_PIXELS (line_rect.x) + PANGO_PIXELS (line_rect.width),
                                    selection_y,
@@ -771,11 +771,11 @@ render_para (GtkTextRenderer    *text_renderer,
               /* draw text under the cursor if any */
               if (!line_display->cursor_at_line_end)
                 {
-                  GdkRGBA color;
+                  GdkRGBA *color;
 
                   gtk_style_context_get (context, "background-color", &color, NULL);
 
-                  gdk_cairo_set_source_rgba (cr, &color);
+                  gdk_cairo_set_source_rgba (cr, color);
 
                  text_renderer_set_state (text_renderer, CURSOR);
 
@@ -783,6 +783,7 @@ render_para (GtkTextRenderer    *text_renderer,
                                                   line,
                                                   line_rect.x,
                                                   baseline);
+                  gdk_rgba_free (color);
                 }
 
               cairo_restore (cr);
@@ -793,6 +794,7 @@ render_para (GtkTextRenderer    *text_renderer,
     }
   while (pango_layout_iter_next_line (iter));
 
+  gdk_rgba_free (selection);
   pango_layout_iter_free (iter);
 }
 
index 651b92abd992033a09d52feb3d3adb7bf1bf564a..bafe97552e38e8edd583f4c1e2996f06628b942b 100644 (file)
@@ -244,13 +244,17 @@ set_attributes_from_style (GtkStyleContext   *context,
                            GtkTextAttributes *values)
 {
   const GdkRGBA black = { 0, };
+  GdkRGBA *bg;
 
   if (!values->appearance.bg_rgba)
     values->appearance.bg_rgba = gdk_rgba_copy (&black);
   if (!values->appearance.fg_rgba)
     values->appearance.fg_rgba = gdk_rgba_copy (&black);
 
-  gtk_style_context_get (context, "background-color", values->appearance.bg_rgba, NULL);
+  
+  gtk_style_context_get (context, "background-color", &bg, NULL);
+  *values->appearance.bg_rgba = *bg;
+  gdk_rgba_free (bg);
   gtk_style_context_get_color (context, values->appearance.fg_rgba);
 
   if (values->font)
index 00fa5ce0dd82d2bc3797581496bd373cf7677140..b0fb9880fc365a5e8db37dac33ad414cd3033384 100644 (file)
@@ -7302,6 +7302,7 @@ gtk_text_view_set_attributes_from_style (GtkTextView        *text_view,
 {
   GtkStyleContext *context;
   const GdkRGBA black = { 0, };
+  GdkRGBA *bg;
 
   if (!values->appearance.bg_rgba)
     values->appearance.bg_rgba = gdk_rgba_copy (&black);
@@ -7310,7 +7311,9 @@ gtk_text_view_set_attributes_from_style (GtkTextView        *text_view,
 
   context = gtk_widget_get_style_context (GTK_WIDGET (text_view));
 
-  gtk_style_context_get (context, "background-color", values->appearance.bg_rgba, NULL);
+  gtk_style_context_get (context, "background-color", &bg, NULL);
+  *values->appearance.bg_rgba = *bg;
+  gdk_rgba_free (bg);
   gtk_style_context_get_color (context, values->appearance.fg_rgba);
 
   if (values->font)